1. Technical Field
The present invention relates to management and control of resources in a computing system. More particularly, the invention concerns assigning or creating a resource, such as storage, for a device, such as a host computer.
2. Description of Related Art
Modern computing systems frequently utilize a large number of computing devices, storage devices, and other components. In a common implementation, a Storage Area Network (SAN) is used to connect computing devices with a large number of storage devices. Management and modeling programs may be used to manage these complex computing environments.
Storage Management Initiative Specification (SMI-S)/Bluefin, and Common Information Model (CIM) technologies, are widely used for managing storage devices and storage environments. The SMI-S is a standard management interface that allows different classes of hardware and software products to interoperate for monitoring and controlling resources. For example, the SMI-S permits storage management systems to identify, classify, monitor, and control physical and logical resources in a SAN. The SMI-S is based on CIM, and Web-Based Enterprise Management (WBEM) architecture. CIM is a model for describing management information, and WBEM is an architecture for using Internet technologies to manage systems and networks. The SMI-S uses CIM to define objects that represent storage entities such as Logical Unit Numbers (LUNs), Disks, Storage Subsystems, Switches, and host Computer Systems. (In many, but not all cases, the term “volume” is interchangeable with the term “LUN”.) CIM also defines the associations that may or may not exist between these objects, such as a Disk being associated to a Storage Subsystem because it physically resides in the Storage Subsystem.
The CIM Objects mentioned above may be managed by a CIM Object Manager (CIMOM). A storage management software application, such as IBM Tivoli Storage Resource Manager (ITSRM), can use a CIM Client to connect to a CIMOM, to retrieve information about the storage entities that the CIMOM manages, and also to perform active configuration of the storage entities. Storage management software that uses a CIM Client may be called a CIM Client Application.
The SMI-S/Bluefin describes how a current storage LUN is mapped. However, the Logical Unit Number (LUN) Masking and Mapping Profile evolved rapidly from the time that the Bluefin Specification was developed to the present version, which is defined in the SMI-S Public Review Draft SMI-S Version 1.0. As a consequence of the rapid evolution, ITSRM 1.2 and the IBM ESS CIM Server for the IBM Enterprise Storage Server (ESS) support a version of the LUN Masking and Mapping Profile that was “captured” between the Profile's Bluefin definition and the Profile's SMI-S definition. (A CIM Server is a CIMOM and a set of CIM Providers.) Consequently, the IBM ESS CIM Server uses a different masking algorithm than described in the latest SMI-S/Bluefin specification, and different associations are made to map a storage LUN to a particular host. These differences can result in complexity and difficulties.
Although the SMI-S/Bluefin describes several methods for assigning a LUN from a disk storage system to a host or HardwareAccount, or for adding a LUN to a disk storage system, the complexity of the CIM object model makes it difficult for a CIM Client application to simply request storage space in a disk storage system.
For example, the SMI-S/Bluefin describes how to add a LUN to a disk storage system, wherein the method CreateOrModifyElementFromStoragePool( ) in the StorageConfigurationService object is used to create a LUN (or storage volume) given the LUN type, the size of the LUN, a storage pool CIM object path and the StorageConfigurationService. The resulting LUN can then be assigned to a host or several hosts available to the disk storage system. Details of the CreateOrModifyElementFromStoragePool( ) method are as follows:
CreateOrModifyElementFromStoragePool uint32 CreateOrModifyElementFromStoragePool {  [in, Values {“Unknown”, “Reserved”,“StorageVolume”, “StorageExtent”, “DMTF Reserved”,“VendorSpecific”},   ValueMap {“0”, “1”, “2”, “3”, “..”, “0x8000..”}]   uint16 ElementType;  [out] CIM_ConcreteJob ref Job,  [in] CIM_StorageSetting ref Goal,  [in, out] uint64 Size,  [in] CIM_StoragePool ref InPool,  [out, in] CIM_LogicalElement ref Element };
This method allows an Element of a type specified by the enumeration ElementType to be created from the input Storage Pool. The parameters are as follows: ElementType: This enumeration specifies what type of object to create. At present, only StorageVolume and StorageExtents are defined as values, however other values (such as share) could be added in future.    Job: Reference to the completed job.    Goal: This is the Service Level that the Storage Volume is expected to provide. The setting must be a subset of the Capabilities available from the parent Storage Pool. Goal may be a null value in which case the default setting for the pool will be used.    Size: As an input this is the desired size of the Storage Volume. If it is not possible to create a volume of the desired size, a return code of “Size not supported” will be returned with size set to the nearest supported size.    InPool: This is a reference to a source Storage Pool.    Element: If a reference is passed in, then that Element is modified, otherwise this is a reference to the created element.
Generally, there is substantial complexity when using the CIM object model to create a LUN. For example, the StoragePool object does not have a direct association to the ComputerSystem's StorageConfigurationService, so the StoragePool object has to be first associated to the ComputerSystem, and the ComputerSystem then has to be associated to the StorageConfigurationService to associate a StoragePool to a StorageConfigurationService. Also, because the ComputerSystem can represent more than just a disk storage system, the correct ComputerSystem must be located before making the association to the StorageConfigurationService.
In summary, known techniques for assigning a LUN from a disk storage system to a host or HardwareAccount, and for adding a LUN to a disk storage system, are difficult and overly complex.